import request from '../libs/request.js'
import env from '../env/index.js'
import util from '../utils/util'

/* 创建request实例 */
const service = request.create({
  baseURL: env.BASE_URL, // 可以使用环境变量的服务地址
  // baseURL: 'http://localhost:8080',  // 也可以自定义服务地址
  timeout:10000
})

// request拦截
service.interceptors.request.use(config => {
  config.header = {} // 不清空一下到时候没办法清掉header的token和id
  // 设置请求头
  if (util.getStorageSync('accessToken')) {
    config.header['Authorization'] = util.getStorageSync('accessToken')
  }
  // 设置请求头，不设置情况下默认是body传参，而且代码http调用设置的会覆盖掉默认相同属性的header
  config.header['content-type'] = 'application/json;charset=utf-8;';
  config.header['Origin'] = env.ORIGIN; // 修改请求域名
  // 如果要执行请求前拦截，使用return false;
  return config;
}, error => {
  return Promise.reject(error);
})

// response拦截
service.interceptors.response.use(response => {
  const res = response.data;
  // 这里可以通过返回的code判断登录是否过期
  if (res) {
    return res;
  } else {
    return Promise.reject(new Error(res.message || 'Error'))
  }
}, error => {
  wx.hideLoading();
  // wx.showToast({
  //   icon: 'none',
  //   title: '您的登录信息已失效，请重新登录',
  // })
  return Promise.reject(error);
})

/* 导出 */
export default service;